今天在刷leetcode的时候,在41题 First Missing Positive 发现了在排序算法中还有一个桶排序,顺便做个总结。
桶排序
关于桶排序先做几点说明:
1)桶排序是稳定的;
2)桶排序是常见排序算法中最快的一种,大多数情况下比快排和归并排序还要快
3)桶排序非常快但是也非常消耗空间,典型的以空间换时间,基本上是最耗内存的一种排序算法。
桶排序中:无序数组有个要求,就是成员隶属于固定(有限的)的区间,如范围为0-9
例如待排数字[6 2 4 1 5 9]
准备10个空桶,最大数个空桶
[6 2 4 1 5 9] 待排数组
[0 0 0 0 0 0 0 0 0 0] 空桶
[0 1 2 3 4 5 6 7 8 9] 桶编号(实际不存在)
1)顺序从待排数组中取出数字,首先6被取出,然后把6入6号桶,这个过程类似这样:空桶[ 待排数组[ 0 ] ] = 待排数组[ 0 ]
[6 2 4 1 5 9] 待排数组
[0 0 0 0 0 0